<?php
include_once "filtro_cabecera.php";
include_once "../funciones/funciones_php.php";
include_once "../funciones/code128.class.php";
?>
<html>
	<link rel="stylesheet" type="text/css" href="../css/plantilla.css" />
<body>
<?php

//Obtiene la cantidad de encomiendas de cada tipo que posee una orden de flete
function getCantidadEncomienda($idOrden)
{
	//Encontrar cantidad de cajas, sobres, valijas que esten finiquitadas en una orden
   $pg = sprintf("SELECT count(de.codigo_barra) as cantidad, enc.id_encomienda, enc.id_tipo_encomienda, enc.peso, enc.volumen
                       FROM orden_flete of, encomienda enc, detalle_encomienda de
                       WHERE of.id_orden_flete = '%d'
                       AND enc.id_orden_flete = of.id_orden_flete
					        AND de.id_encomienda = enc.id_encomienda
					        AND de.estado_llegada = TRUE
					        AND de.estado_finiquito = TRUE
					        GROUP BY enc.id_encomienda, enc.id_tipo_encomienda, enc.peso, enc.volumen",
                       pg_escape_string($idOrden));

   $consulta = pg_query($pg) or die("ERROR");
                
   while( $reg = pg_fetch_array($consulta) )
	{
				
      $tipo_encomienda = $reg['id_tipo_encomienda'];
        
      if($tipo_encomienda == 1)
		{
         $cantidad['cajas']['cantidad'] = $reg['cantidad'];
         $cantidad['cajas']['peso'] = $reg['peso'];
         $cantidad['cajas']['volumen'] = $reg['volumen'];
      }
                        
      if($tipo_encomienda == 2)
         $cantidad['sobres']['cantidad'] = $reg['cantidad'];
                        
      if($tipo_encomienda==3)
		{   
         $cantidad['valijas']['cantidad'] = $reg['cantidad'];
         $cantidad['valijas']['peso'] = $reg['peso'];
      }                     
                
   }
		
	return $cantidad;
}

if( isset($_GET['fecha'] , $_GET['ciudad']) )
{
	conectar();
   $fecha = $_GET['fecha'];
   $ciudad = $_GET['ciudad'];
	list($dia, $mes, $anio) = explode("-",$fecha);
	
	if($ciudad == "todo")
	{
		$sql1 = sprintf("SELECT destino.destino, orden_flete.id_orden_flete,(orden_flete.nombre_consignatario || ' ' || orden_flete.apellido_consignatario) as nombre_consignatario,      
						      (orden_flete.direccion_consignatario || ' ' || orden_flete.numero_direccion || ' ' || orden_flete.numero_depto) as direccion_consignatario,
                        comuna.comuna, comuna.id_ruta
								FROM orden_flete, comuna, destino, detalle_encomienda, encomienda
                        WHERE date_part('day',detalle_encomienda.fecha_finiquito) = '%d'
                        AND date_part('month',detalle_encomienda.fecha_finiquito) = '%d'
                        AND date_part('year',detalle_encomienda.fecha_finiquito) = '%d'
                        AND detalle_encomienda.estado_llegada = '1'
                        AND detalle_encomienda.estado_finiquito = '1'
                        AND encomienda.id_encomienda = detalle_encomienda.id_encomienda
                        AND orden_flete.id_orden_flete = encomienda.id_orden_flete
				            AND orden_flete.id_tipo_servicio = 1
                        AND comuna.id_comuna = orden_flete.id_comuna
				            AND destino.id_destino = comuna.id_destino
                        GROUP BY destino.destino, orden_flete.id_orden_flete, (orden_flete.nombre_consignatario || ' ' || orden_flete.apellido_consignatario),
                        (orden_flete.direccion_consignatario || ' ' || orden_flete.numero_direccion || ' ' || orden_flete.numero_depto),
								comuna.comuna, comuna.id_ruta
					         ORDER BY destino.destino ASC",
                pg_escape_string($dia),
                pg_escape_string($mes),
                pg_escape_string($anio));
		
	}
	else
	{

		$sql1 = sprintf("SELECT orden_flete.id_orden_flete,(orden_flete.nombre_consignatario || ' ' || orden_flete.apellido_consignatario) as nombre_consignatario, 
						   (orden_flete.direccion_consignatario || ' ' || orden_flete.numero_direccion || ' ' || orden_flete.numero_depto) as direccion_consignatario,
							comuna.comuna, destino.destino, comuna.id_ruta
                FROM orden_flete, comuna, destino, detalle_encomienda, encomienda
                WHERE date_part('day',detalle_encomienda.fecha_finiquito) = '%d'
                AND date_part('month',detalle_encomienda.fecha_finiquito) = '%d'
                AND date_part('year',detalle_encomienda.fecha_finiquito) = '%d'
                AND detalle_encomienda.estado_llegada = '1'
                AND detalle_encomienda.estado_finiquito = '1'
                AND encomienda.id_encomienda = detalle_encomienda.id_encomienda
                AND orden_flete.id_orden_flete = encomienda.id_orden_flete
				    AND destino.id_destino = '%s'
				    AND comuna.id_destino = destino.id_destino
                AND orden_flete.id_comuna = comuna.id_comuna
				    AND orden_flete.id_tipo_servicio = 1
                GROUP BY destino.destino, orden_flete.id_orden_flete, (orden_flete.nombre_consignatario || ' ' || orden_flete.apellido_consignatario),
				    (orden_flete.direccion_consignatario || ' ' || orden_flete.numero_direccion || ' ' || orden_flete.numero_depto),
					 comuna.comuna, comuna.id_ruta
					 ORDER BY destino.destino ASC",
                pg_escape_string($dia),
                pg_escape_string($mes),
                pg_escape_string($anio),
                pg_escape_string($ciudad));
	}

   $consulta1 = pg_query($sql1)or die("Error");
   $numFilas = pg_num_rows($consulta1);
	
	//Muestra los resultados en una tabla
   if($numFilas > 0)
	{  
      $i = 0;
		$cont = 0;
      
		while ($reg1 = pg_fetch_array($consulta1))
		{	
         $orden_flete = $reg1['id_orden_flete'];
         $consignatario = $reg1['nombre_consignatario'];
			$direccion = $reg1['direccion_consignatario'];
         $comuna = $reg1['comuna'];
			$ruta = $reg1['id_ruta'];
			$destino = $reg1['destino'];
			$cantidad = getCantidadEncomienda($orden_flete);
				
			//Crea codigo de barra si es que no existe
			getCodigoBarra($orden_flete);
				     
		   //Si llego a 20 registros o cambia de destino, hace un salto de pagina y crea el encabezado nuevamente
			if( ($cont % 20) == 0 || $destino_actual != $destino   )
			{
				//Reinicia contador
				$cont = 0;
				//Actualiza nuevo destino
				$destino_actual = $destino;
					
				//Si NO es el inicio cierra la tabla anterior
				if($i != 0)
				   echo "</table>";
					  
				//Si es el inicio no hace el salto de pagina
				if($i == 0)
				   $idCapa = " ";
				else
				   $idCapa = "salto_pagina_anterior";
	
				echo "<div id=" . $idCapa . ">
						<div align=center>MANIFIESTO DE CARGA</div><br />
						<div align=right>Fecha: " . $fecha . "</div><br>
						<div align=left>Destino: " . $destino_actual . "</div>
						<table border=1 cellspacing=0>
					   <tr>
				      <th rowspan=2>Codigo</th>
						<th rowspan=2>Consignatario</th>
						<th colspan=3>Cajas</th>
						<th>Sobres</th>
						<th colspan=2>Valijas</th>
						<th rowspan=2>Direccion</th>
						<th rowspan=2>Comuna</th>
						<th rowspan=2>Ruta</th>
						</tr>
						<tr>
						<th>Cantidad</th>
						<th>Peso</th>
						<th>Volumen</th>
						<th>Cantidad</th>
						<th>Cantidad</th>
						<th>Peso</th>
						</tr>
						</div>";
			}	
			
			echo  "<tbody>
                <tr>
					 <td>&nbsp;" . $orden_flete . "</td>
                <td>&nbsp;" . $consignatario."</td>
                <td>&nbsp;" . $cantidad['cajas']['cantidad'] . "</td>
                <td>&nbsp;" . $cantidad['cajas']['peso'] . "</td>
					 <td>&nbsp;" . $cantidad['cajas']['volumen'] . "</td>
					 <td>&nbsp;" . $cantidad['sobres']['cantidad'] . "</td>
                <td>&nbsp;" . $cantidad['valijas']['cantidad'] . "</td>
                <td>&nbsp;" . $cantidad['valijas']['peso'] . "</td>
                <td>&nbsp;" . $direccion. "</td>
                <td>&nbsp;" . $comuna . "</td>
					 <td>&nbsp;" . $ruta . "</td>
                </tr>
                </tbody>";
			$i++;
			$cont++;
      }
    
      echo "</table>
		      <script>window.print();</script>";
   }
   else
      echo "<p align=center>No se encontraron envios para esa fecha y destino</p>";
   
	pg_close();
}
else
   die( '<script>alert("Faltan datos para completar la consulta.")</script>');
?>
</body>
</html>  

